Software-defined networking (SDN) is a network architecture that aims at decoupling control plane functions from data plane functions such that separate apparatuses may be utilized for different functions. In the SDN architecture, network intelligence and states are logically centralized, and the underlying network infrastructure is abstracted from the applications. As a result, networking may be simplified and new applications become feasible. For example, network virtualization can be accomplished by implementing it in a software application where the control plane is separated from the data plane. Also, a network administrator of a SDN system may have programmable central control of network traffic without requiring physical access to the system's hardware devices. With these benefits, SDN architecture based systems (referred to as SDN systems or SDN networks exchangeably herein below) are gaining popularity among carriers and enterprises.
A SDN system includes one or more SDN controllers and a set of network elements managed by the SDN controllers. In a SDN system, network delay of the SDN system for a traffic flow is the time taken by the traffic flow as it traverses one or more of the set of network elements. Network delay can be measured for an individual traffic flow, an aggregate of traffic flows, or an application serving traffic flows in the SDN system. Network delay, including delay variance (often referred to as jitter), is an important metric of network performance, and it is often tied to a service level agreement (SLA) with a client of the SDN system. Thus, it is important to develop methods to measure network delay accurately in a SDN system.